/*
 * Copyright (C) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef AUDIO_SUITE_ENGINE_COMMON_H
#define AUDIO_SUITE_ENGINE_COMMON_H
enum class TestResult {
    TEST_FAIL = 0,
    TEST_PASS = 1,
};

enum class AudioNodeTypeTest {
    INPUT_NODE_TYPE_DEFAULT_TEST = 1,
    OUTPUT_NODE_TYPE_DEFAULT_TEST = 101,
    EFFECT_NODE_TYPE_EQUALIZER_TEST = 201,
    EFFECT_NODE_TYPE_NOISE_REDUCTION_TEST = 202,
    EFFECT_NODE_TYPE_SOUND_FIELD_TEST = 203,
    EFFECT_MULTII_OUTPUT_NODE_TYPE_AUDIO_SEPARATION_TEST = 204,
    EFFECT_NODE_TYPE_VOICE_BEAUTIFIER_TEST = 205,
    EFFECT_NODE_TYPE_ENVIRONMENT_EFFECT_TEST = 206,
    EFFECT_NODE_TYPE_AUDIO_MIXER_TEST = 207,
};

enum class AudioSuitePipelineWorkModeTest {
    AUDIOSUITE_PIPELINE_EDIT_MODE_TEST = 1,
    AUDIOSUITE_PIPELINE_REALTIME_MODE_TEST = 2,
};

enum class AudioSuitePipelineStateTest {
    AUDIOSUITE_PIPELINE_STOPPED_TEST = 1,
    AUDIOSUITE_PIPELINE_RUNNING_TEST = 2,
};

enum class AudioSuiteResultTest {
    AUDIOSUITE_SUCCESS_TEST = 0,
    AUDIOSUITE_ERROR_INVALID_PARAM_TEST = 1,
    AUDIOSUITE_ERROR_INVALID_STATE_TEST = 2,
    AUDIOSUITE_ERROR_SYSTEM_TEST = 3,
    AUDIOSUITE_ERROR_UNSUPPORTED_FORMAT_TEST = 4,
    AUDIOSUITE_ERROR_ENGINE_NOT_EXIST_TEST = 5,
    AUDIOSUITE_ERROR_PIPELINE_NOT_EXIST_TEST = 6,
    AUDIOSUITE_ERROR_NODE_NOT_EXIST_TEST = 7,
    AUDIOSUITE_ERROR_UNSUPPORTED_CONNECT_TEST = 8,
    AUDIOSUITE_ERROR_UNSUPPORTED_OPERATION_TEST = 9,
    AUDIOSUITE_ERROR_CREATED_EXCEED_SYSTEM_LIMITS_TEST = 10,
    AUDIOSUITE_ERROR_REQUIRED_PARAMETERS_MISSING_TEST = 11,
};

enum class AudioSampleFormatTest {
    AUDIO_SAMPLE_U8_TEST = 0,
    AUDIO_SAMPLE_S16LE_TEST = 1,
    AUDIO_SAMPLE_S24LE_TEST = 2,
    AUDIO_SAMPLE_S32LE_TEST = 3,
    AUDIO_SAMPLE_F32LE_TEST = 4,
};

enum class AudioEncodingTypeTest {
    AUDIO_ENCODING_TYPE_RAW_TEST = 0,
};

enum class AudioSampleRateTest {
    SAMPLE_RATE_8000_TEST = 8000,
    SAMPLE_RATE_11025_TEST = 11025,
    SAMPLE_RATE_12000_TEST = 12000,
    SAMPLE_RATE_16000_TEST = 16000,
    SAMPLE_RATE_22050_TEST = 22050,
    SAMPLE_RATE_24000_TEST = 24000,
    SAMPLE_RATE_32000_TEST = 32000,
    SAMPLE_RATE_44100_TEST = 44100,
    SAMPLE_RATE_48000_TEST = 48000,
    SAMPLE_RATE_64000_TEST = 64000,
    SAMPLE_RATE_88200_TEST = 88200,
    SAMPLE_RATE_96000_TEST = 96000,
    SAMPLE_RATE_176400_TEST = 176400,
    SAMPLE_RATE_192000_TEST = 192000
};

enum class AudioSuiteSoundFieldTypeTest {
    SOUND_FIELD_FRONT_FACING_TEST = 1,
    SOUND_FIELD_GRAND_TEST = 2,
    SOUND_FIELD_NEAR_TEST = 3,
    SOUND_FIELD_WIDE_TEST = 4,
};

enum class AudioSuiteEnvironmentTypeTest {
    ENVIRONMENT_TYPE_BROADCAST_TEST = 1,
    ENVIRONMENT_TYPE_EARPIECE_TEST = 2,
    ENVIRONMENT_TYPE_UNDERWATER_TEST = 3,
    ENVIRONMENT_TYPE_GRAMOPHONE_TEST = 4
};

enum class AudioSuiteVoiceBeautifierTypeTest {
    VOICE_BEAUTIFIER_TYPE_CLEAR_TEST = 1,
    VOICE_BEAUTIFIER_TYPE_THEATRE_TEST = 2,
    VOICE_BEAUTIFIER_TYPE_CD_TEST = 3,
    VOICE_BEAUTIFIER_TYPE_RECORDING_STUDIO_TEST = 4
};
#endif